slightly less const-incorrect