changed data structure for required
adopted JSON schema terms and add extract_propeties method