record funcionality separated