split our bulking functionality into it's own class