updated to standards and python 3