implement light record-playback composition

- finish issue #4