Many changes to get it closer to working