> Is there any other way? I don't want it to be overwritten. Can i use merge > or something?
I might suggest creating a chainOptions() method which will merge two sets of runtime options, call them the "include options" if you will for the class and the "user options." For non-function options, this method would simply override the include options with the user options if both exist (like a typical merge), while for function-valued options, it would return a function chain that runs the function from the include options, then runs the function from the user options. Then override initialize() in the classes you want to use chainOptions instead of basic setOptions. I don't have the time to work up POC right now, however! -- S.