Initial commit - classes and required packages in their first-draft state. Currently works on my local setup, your mileage may vary.