extended the basic functionalities