Clone of https://code.google.com/a/eclipselabs.org/p/efactory/