important changes, beginning to complete functionalities