Fully document SmartBinder, add license headers, reformat code.