cleanup
Merge remote-tracking branch 'origin/real-endpoint' into real-endpoint
cleanup and delegate protocol implemented

needed to call delegate method in a dispatch asycnh