quick refactor to better support pickup