handle row spanning to some extent. this will break existing stuff if you've been doing row spanning and then using spacers