Data directed programming