Big Commit with many fixes from Paul