improve code coverage
refacto to ease unit testing
improve code coverage
raise coverage rate required from 50 to 75