Some wonderful improvments, added the tree option component