Refactor using Interface/ExMethod combo