sync with luscinia branch, done by hand, merge fails badly due to many renames etc.