programmable models