edges with circles and smarter offset