Added pretty much everything. Project is finished, but not tested