Lots of changes

sorry for bad commit msg
Lots of changes