add commands.observe, events.observe