refactoring + bullet