added tests and grunt workflow