Test for solids and non-solids
Using channels for events
Replace malloc with allocate