Pushign down gateway form declarations to specific implementations