revamp upstream mechanism