implement list logic