Additional field types, required option and as_generator method