- add interfaces
- update solution