almost finished now...needs lots of formatting