refactor recorder and use gulp for build