added new functionality and specs