ugh, ive gotta get this together, so ugly and failing