WIP: thinking about ECAT

I guess this one is for @cindeem - I'll put some questions up if I may, because
I was finding it hard to understand the format sometimes.  Does what I've done
here make sense?  Particularly the read_mlist function?