A Javascript signal/slot pattern library