added more of the framework implementation