a lot of code removed