Change a lot of logic