- not using google guava anymore
- extending interface