controller flow