prevent infinite loops
merged