John (Sandy) McGregor