May not be the most elegant implimentation but will work for 99% of shops