Added significant documentation