most functionality done now, need to clean code up a lot