make a generic controller