implemented some of the new functionality things