adding appropriate controllers and states