finish tests and ready for refactor.