SOFTWARE-DRIVEN ABSTRACTION LAYER