framework implementation