implement record