adds tests, configures coverage reporter, fixes karma, etc