Reimplementation with FormObject & FormInput separated