generate endpoints