implement buff