This also refactors the loader code to honor private symbol naming policy. This is a part of issue #285