refactored 16