dont make new objects if we don't have to