few implementations of basic functionalities