immutable macro needs to be fixed