Refactor and add bullethole basics