Maybe finished sorta object oriented rearrange