starts of recording implementation