ported to the new framework