very own -> exclusive
adding list functor
adding list functor