mostly working, can't use concrete subclasses yet