This provides more flexibility to the backends without requiring them to duplicate some of the larger methods.