A Light-weight, non-intrusive, type-safe event system