Refactor interaction; close #110