put the logic in the completion handler wtf