added much needed documentation