refactored 102