about to seriously hack this apart, so just commiting first