programming flexibility