refactor, plus added turret