new needle framework