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