This is basically a WIP, but it can't remain in a branch forever. A warning is print when using it as it's still a bit "shaky".