This commit is a work in progress, lots of new ideas