baisc recorder function