completely refactor
add grunt for testing