framework written