added documentation beyond basic generated stuff