rebased fixes from my 'experiments' branch