endpoints framework