Documentation

Adding documentation throughout to make sure that my implementation is
up to spec