almost all changes done