refactoring complete. #14