Lots of code. too tired