added documentation etc