shouldn't have refactored