some balance, projectile optimisation, code refactoring