Beacon v2

It seems a bit confusing to have all these classes. Any thoughts on if there a simpler way?