Wrote how this should work when finished