tentative activity/factory class hierarchy