Rewrote Recorder and added specs