Refactor to use ViewInterface classes