struct definitions & JSON handling
file visitor pattern