refactor, implement views