Some extra documentation, demo can be run directly from file