pull out IFramePhone into its own module
experiment with non playback-support model