fixed id generation