added grunt + refactor