added core functionalities