Updated to comply with PEP8 still needs work.