implicit list implementation