A lot of fixes and add a lot