using guids instead of string
make exception serializable
remove redunant PackageListener<T>

fix possible nre