Finished this for now! There are still bugs....