I think you should always throw an error when FIRMATAEXT is not included. If it's not included, the pin modes will not be set properly so it's necessary that it's included. This will greatly reduce the number of conditionals you use in all of these feature classes.