RA3: Enabling Adaptivity via a Reflective Architecture