debugged some things.. this is pretty done