Feature/extensible controllers

@shanejonas @stryderjzw