added external functionalities