viewmap and controller have been optimized