Still unstable, needs tests.
See last commit