extract interface...
adjust