1. adapter
2. facade