everything is done in functionalities