Still WIP
WIP
Cleaning and adding tests and assert (still WIP)