1. removed excess interfaces
2. cleaned up code