compiles, doesn't work but is taking some shape (however weird it is...)