main modification