more compatible for flex