new controller handling logic