Cleaning up file structure, adding docstrings
Removing redundancies and extra computation, start building abstraction
Adding __init__.py file