first cut cli generalization
global middleware