Getting places, pretty ugly code though