experimental classes for syncing and playing, may put this in seperate files...