cleaned up, added a lot of stuff