Added in much documentation and comments. Added configuration form. Added runtime requirement check