add new functionalities