extended property api (get, set, error) and tests (#5)