I want to change the behavior of an object dynamically, but I want to be maintained easily since I want to open an interface where people can extend without knowing the base