add method override pattern