added support for variable height rows