clean up and alot more added/changed