support for default methods and refac