Reimplement without "layers" and with "mmorph"