doing a pluggable framework