lots of stuff..

that needs more cleanup :)