moved several functions from protected to the public domain