added interaction factory
iteratively adding functionality for interactions