Split list and observe functionality into two classes.
I am not completely happy with the design yet.

Also add command line interface wiht argparse