add needle impl
use user.name instead user.id
fix basic strategy