Being able to declaratively specify control within a planning (or theorem-proving) paradigm is necessary if we are to build intelligent machines. This paper introduces an implementation of planning using situation calculus, in the answer set programming paradigm. Our forward-chaining planner has control mechanisms which are based on three ideas: (1) controlling the domain of discourse, (2) mental situations, and (3) contexts. We recognize that the underlying computational mechanisms do not take advantage of these control mechanisms. In fact, our efficiency drops due to the addition of these mechanisms. However, we believe that a declarative specification will lead to an understanding, and creation of, better planning frameworks.