name changing of the lib for more general use
more abstraction and completed ww task 1