making some stuff public so it can be used more easily as a library