many changes! :)