Beacon v2

Not sure what these should be called but Callback probably isn't it. Protocol? ReaderWriter?