refactor struct methods
add classes for struct type, constructor, predicate, accessor and mutator, enable the corresponding test