more generic row creation