OO-ize to split sub that is getting too long
WIP