- use extensions to implement delegates methods