12 refactored