major refactor into using Guava Table