moving default methods to implementation