plenty of improvements

progress from 'experiment' branch