self defined view