Partial fix. More abstractions. Better organization of files.