reduce object creation in some cases