set should not have huge side effects