tighter place_on_row/col logic after refactor