Refactor

interface refactor