Add doc-strings and pretty up constructor