major code changes