Whole thing basically working