First cut as a very basic middleware tab
Set tab key as expected by JS
Add additional middleware
Fix exception with un-run middleware