list interface -> abstract list