this does not require to be bidirectionnal