added some new functionality