move recorder to own file