added @private annotations and documentation, see #281