all functionalities tested, big commit