New Generic API
Data structure, and some helpers
Adding a build decision tree function and it's helper