a lot of new functionality