Switch to reflection & clean up some diff