migrate to full CLOS