this looks very complicated maybe i should sober up than come back..