This implementation is not good enough, it still needs a deeper rework. Most certainly we will need to rip Khomps way of doing this.