- stream implementation added - TODO - cover with tests