full python3 compatible using six