updated controller interface