changed everything to use ListT like interface
crazy attempt to define aggregate oh boy