record functionality