Prepare Lookups to support default value.
finalized interface by providing both nullable and nonnull methods.
Completed the factory methods and move core logic out to LookupBuilder.