Make Builder more generic
Fix a few bugs found in Builder refactor