improve framework