remove a lot of logic