refactored prjectile behaviour.