initialize interface definition more flexible