use https, circles, better edge case handling