Documentation

Added comments all over the place