further refactoring with bullets