[MAJOR] Revamp the whole thing
[MERGE] Manually merging 4e4f4d5ba9a8ffa33a246e946de80a0fcc26e71a
Merge branch 'oopify'