ought to be merge Smeagolworms4's code in