Moving out boiler plate code to use standard interfaces