make on-disk pt threadable
return reference from function instead of pointer