wholesale changes to lev
different routine interface