Introduce a database adapter layer