ticket: 1 refactored