Changed to Entity System for code reusability