adjust the trait api, as we discussed