added documentation on what it is doing