Beacon v2

You are completely right. I started with an abstract class but by the end I had taken out all the non-abstract methods. I will change this to an Interface.