use needle instead of request