added client-side player and necessity classes