Updating ComponentFactory

Adding more comments, using the constant argument strings,
and making copies of argument bundles so that the original
bundles are not altered.