extracted weakListenerCollection into own open source project