closes #70: reduce memory usage using soft refs