https://blog.telecomsxchange.com/introducing-programmable-x/