coded this all before i git'd, probably should have VC'ed earlier, oh well