new Observable API (instead of the Event one)