fixed typo (d'oh! syntax error!)
reorganized everything

isn't working yet--still need to figure out an appropriate way to allow methods
to be overridden--but it's a start