Refactor to separate class
Removed code for position choice; add later
update