Many changes, now kind of works