added hyphenate, camelCase, nodeId
added data()
added onRemove()