Much code changes