unlaboriously
not defined yet