play on encounter impl.

implement #4