Added missing imports
Restructured and added document docblocks