Object-Oriented Programming in COMMON LISP: A Programmer's Guide to CLOS