refactor, use helpers