Right. This implementation needs more fixing and refactoring. If you want I can do it with this PR.