extended abstraction layer
setup.py