using setuptools instead of distutils.core