Adding support classes and making a very simple simulation to test the functionality