Wrote some proper documentation