lot of changes + fix + style