start adding some proper documentation