implementation of new functionality