only be exchanged between objects through interfaces