add complex view and refactor some views