start of factoring out programmable platforms