add construct and interface