implement record projection