Moved playback implementation to library