[refactor] major refactor.

using directive component for each hnItem

properly 3-way data binding for updates.

moved to es6 class based method of defining controllers