First implementation (minus handling Notifications)