add grunt + refactoring