altered a bunch of stuff to be more functional, factored some code. no idea if this works
fixed up, currently works
up and running
fixed a few minor styling issues