added new controller pattern.