Add Ball class and rework some classes/requires