rearranging basic functionalities