added reduce and specs. 100% coverage