modified the shoot function and fixed a bug in geo