replace relative_flag with !scheme_data == null

add more tests, particularly for calling setters with 'extra' information