(#50) Decouple widget directive and controller instantiation (cleanup, all specs green)