initial add
add tests and hook up grunt tasks