lots of work i dont remember
merged