alot of new functionality