it will be easier to maintain and test related to #108
it will be easier to maintain and test
related to #108