single update endpoint