Updated Makefile
Fixed inheritance chain
Added setup.py
Cleaned up for flake8