init with interfaces