extracted interface