generalize to allow for future diversification of endpoints