fields should be stored in a map for easier json generation