Fleshed out rectangles, untested.