restrucure to allow for simpler setup.py