Abstract event systems