leave referenceClass implementation for later