reduced public API and other improvements