Major refactoring: Added the Sample class. All feature updated to use the Sample object instead of receive a string as input (performance purposes). Add new lib.