some new functionality and some tests