corrections to shared pointer support and implementation of helper collection