only supporting python 2.7 due to reliance on third party algorithms