Move to a more pluggable architecture