deps order
use result-type