Try something a little more decoupled and consistent.