Arhhhh this is gonna take some time......zzzzzz