simplified interfaces.Compiles but not tested