New level<> implementation without boost::mpl