added core features plumbing
add html preview + ngModel binding
tweak code style
use input for data binding