Self-Adapting Numerical Software (SANS) systems aim to automate some of the laborious human decision making involved in adapting numerical algorithms to problem data, network conditions, and computational platform. In this paper we describe the structure of a SANS system that tackles automatic algorithm choice, based on dynamic inspection of the problem data. We describe the various components of such a system, and their interfaces.