idAttribute can be a function