In this paper we summarize our progress towards building a self-aware agent based on the definition of explicit self-awareness. An explicitly self-aware agent is characterized by 1) being based on an extensive and human-like knowledge base, 2) being transparent both in its behavior and in how the knowledge is represented and used, and 3) being able to communicate in natural language and directly display awareness through its dialogues. We first review the requirements imposed by explicit self-awareness on the knowledge representation and reasoning system and then describe how these have been realized in the new version of the Epilog system. We argue that meta-level reasoning is very important for commonsense reasoning and self-awareness, but suggest in our concluding discussion that viewing agent control structure in terms of separate object-level and meta-level strata may not be particularly helpful. Rather, we suggest a ``continual planning" (and execution) control structure wherein the agent's meta-level and object-level reasoning steps mingle seamlessly, just as they do in the question-answering processes we have implemented.