exposed all functionalities and properties