# Subroutines for Each Field > [HTML Version](subroutinesforeachfield.htm) Adopt a common subroutine model for each field, which uses parameters to set the field location, and returns an exitcode. This allows the special details of the field to be kept together with the field, while still allowing you to adjust the inter-field behavior at the level above, or even to use the same field editing/display code in different contexts. For example, rather than the traditional AlphaACCOUNTING model: FIELD1: xcall INFLD, ... IF INXCTL OR CNGCTL GOTO ANYCNG FIELD2: xcall INFLD, ... IF INXCTL OR CNGCTL GOTO ANYCNG etc. Break the above monolith into individual fields and move the interfield logic to a higher level, i.e.: DO'FIELDS: \! caller sets OPCODE=1 for input, 2 for display ON FNO CALL FIELD1,FIELD2,FIELD3,... IF NOT DONE GOTO DO'FIELDS ANYCNG: FIELD1: xcall INFLD, ... RETURN FIELD2: xcall INFLD, ... RETURN