dependency yes, everything a object use outside of it's scope make it dependent of the other object it use... if it's a 'core' object you can use classes, if something that can be plug-in define an interface, in any case you keep the logic and state encapsulate where it belongs (the 'owner'...