Reworked for ROM

Routing is still missing, overall code is spaghetti-y