new implementation of recorder