controller handles many cases