A Java framework for adding Events (Observer design pattern) to Java classes, requiring minimal boilerplate code to use