Needs better swift