implement views (without callback)