Fixed fatal error when setting the field name, changed factory functions from get* to new* for code transparency.