class adapter patterns