controller structure