record and view: implementation