add recorder
improved recorder