Copying over core and stream from Clidget's 'hammock time' branch