Revert 502a413..ca50919

This rolls back to commit 502a413a2f9112ae77a24902508d0b5d6e5f6dc9.
Revert ca50919..1d934c5

This rolls back to commit ca5091918773d371b6728ace9a246bcbeb09d37a.
Finally got the directive controller vs link functions responsibilities figured out