interface with controller struct