complete main functionalities;