refactor, slim down