implemented recursive bullet