complete functionalities