Rework to make it work (but still buggy)