Parse properly now; Much clean up and optimization