Add widget support
Enforce mongo naming convention consistent with thrift
Refactor widget support