Initial version

py2 ready. py3 support not finished