reimplement the circle layout (now working)