implemented all changes