Beginnings of generic controller