rework frame parsing, now key events generate events at specific channel