Added support for root definition
Started on array ranges
Rewrote the tests a bit