First implementation of the library