better py3k compatability
reorgnaize modules