Many design fixes. Some refactoring & folder restructuring.