Classes for various graphics models - allows the user to shift rendering strategy without changing code.