Changed to CLOS implementation.
Merged CLOS branch.