ABSTRACT: Adaptation requires that a entity, whether carbon or silicon based, be able to analyze itself and its environment. This analysis, in turn, allows this entity to react or make decisions and carry out actions that improve its ability to survive and function in its environment. Computational reflection defines the basic requirements needed to support adaptation. Namely, the mechanisms that allow a system to examine and modify its own behavior. However, should these two aspects of reflection be tightly tied together? In this talk, we will examine some of the roots of reflection and propose how and why reflection can be functionally divided. Additionally, we will further examine how these ideas might be used in designing and implementing adaptive systems.