Issue #4
Constructors of Fields become protected, and some static create
methods added instead.
Tests are changed respectively.