object adapter patterns