Added a little documentation
Added a little more unnecessary genreics, a little more documentation,
and a null check