Added projection support, gonna do the massive clusterfuck of debugging that is required to run the program :(