Implemented playback and some rudimentary state conservartion.
I'm using depracted methods, once I have time I should probably fix that.