make methods more similar and add setup.py