rename inject to chain, throw error if chained function returns falsy value