Feature optional fields

@silbermm