there are so many things wrong with this