major re-work of the library to seperate based on utility functions and actual classification functions