If id is not specified it should be derived from name.