Refactor interfaces
Type checking