implemented view interface