spec out resultcollection
implement most of resultcollection