added some cool new functionality