refactored Buff to support more than one Effect