Provision Mix Matrix Data Definition 2008/2009
A_FE_PROVMIX_MATRIX
DATA DEFINITION
1. Provision Mix Matrix Category
2. The aim of this variable is to support the Planning Cycle, the LSC has established a Corporate Language of mix of provision.
3. Assigns the value for the Provision Mix Category (A_FE_PROVMIX_MATRIX) to each aim that is in the aims standard files, following a series of conditional tests using values in the fields from the Analytical LAD current to that aim.
PURPOSE
4. Identifies the categories of provision mix.
RELEVANT COLLECTIONS
- ILR (LR)
- ILR (ASL)
- ILR (UfI)
- ILR (ER)
- ILR (ESF SR)
SOURCE DATA
5. The following variables are used as source data for the calculation of the Provision Mix category.
| Field Name |
Label |
Dataset |
| A09 |
A09 Aim Reference |
Aims Standard File |
| A_L2CAT |
A_L2CAT Full Level 2 Category |
Analytical LAD |
| A_FUN_ST |
A_FUN_ST LSC Funded Status |
Analytical LAD |
| A_L3CAT |
A_L3CAT Full Level 3 Category |
Analytical LAD |
| A_OPROV |
A_OPROV Other Provision Flag |
Aims Standard File |
| A_SFLTY |
A_SFLTY Skill for Life Type |
Aims Standard File |
| A58 |
A58 ASL provision type |
Aims Standard File |
| A_SFL |
A_SFL Counts towards Skills for Life Target |
Analytical LAD |
| A_NOTION |
A_NOTION Notional NVQ Level |
Analytical LAD |
DERIVED VARIABLES AND DATASETS
6. The definition produces the following derived variable(s)
| Field Name |
Label |
Dataset |
| A_FE_PROVMIX_MATRIX |
A_FE_PROVMIX_MATRIX FE provision mix matrix |
Aims Standard File |
VALUES
7. The table below outlines the categories for A_FE_PROVMIX_MATRIX
| A_FE_PROVMIX_MATRIX Label Value |
Description |
| 1 |
Level Entry - within section 96/97 excluding SFL aims |
| 2 |
Level Entry - outside of section 96/97 excluding SFL aims |
| 11 |
Level 1 – within section 96/97 excluding SFL aims |
| 12 |
Level 1 - outside of section 96/97 excluding SFL aims |
| 21 |
Level 2 – within section 96/97 excluding SFL aims and those that can contribute towards the full level 2 threshold |
| 22 |
Level 2- outside of section 96/97 excluding SFL aims and those that can contribute towards the full level 2 threshold |
| 25 |
Aims that entirely satisfy the Full level 2 threshold |
| 26 |
GCSEs (excluding SFL GCSEs) |
| 31 |
Level 3 – within section 96/97 excluding aims that can contribute towards the full level 3 threshold |
| 32 |
Level 3 – outside of section 96/97 excluding aims that can contribute towards the full level 3 threshold |
| 35 |
Aims that entirely satisfy the Full level 3 threshold (excluding Access to HE) |
| 36 |
Alevel/Aslevel/AVCE |
| 39 |
QAA Recognised Access to Higher Education Courses |
| 41 |
Level 4 and above – within section 96/97 |
| 42 |
Level 4 and above - outside of section 96/97 |
| 70 |
Safeguarded Adult Learning |
| 110 |
SFL Numeracy – within section 96/97 cannot contribute to target |
| 111 |
SFL Numeracy - within section 96/97 |
| 112 |
SFL Numeracy - outside of section 96/97 |
| 120 |
SFL Literacy – within section 96/97 cannot contribute to target |
| 121 |
SFL Literacy - within section 96/97 |
| 122 |
SFL Literacy – outside of section 96/97 |
| 130 |
SFL ESOL – within section 96/97 cannot contribute to target |
| 131 |
SFL ESOL - within section 96/97 |
| 132 |
SFL ESOL - outside of section 96/97 |
| 999 |
Unknown level |
DETAILED DEFINITION
8. An Aim is assigned a Provision Mix Category depending on the below criteria;
a) If aim is flagged as a Full level 2 (A_L2CAT=1) in the Learning Aims Database (LAD), Provision Matrix is set to ‘Aims that entirely satisfy the Full level 2 threshold’ (A_FE_PROVMIX_MATRIX=25).
b) If aim is recognised as a QAA Access to HE course (A_FUN_ST=’04’) in the Learning Aims Database (LAD), Provision Matrix is set to ‘QAA Recognised Access to Higher Education Courses’ (A_FE_PROVMIX_MATRIX=39).
c) If aim is flagged as a Full level 3 (A_L3CAT=1) in the Learning Aims Database (LAD), Provision Matrix is set to ‘Aims that entirely satisfy the Full level 3 threshold (excluding Access to HE)’ (A_FE_PROVMIX_MATRIX=35).
d) If aim is flagged as contributing towards Full level 3 (A_L3CAT= 2 or 3) in the Learning Aims Database (LAD), Provision Matrix is set to ‘Alevel/Aslevel/AVCE‘ (A_FE_PROVMIX_MATRIX=36).
e) If aim is considered to be a Language Skills for Life type (A_SFLTY=3) and is not other provision (A_OPROV=0) and does not count towards the Skills for Life target (A_SFL=0), Provision Matrix is set to ‘SFL ESOL – within section 96/97 cannot contribute to target’ (A_FE_PROVMIX_MATRIX=130).
f) If aim is considered to be a Language Skills for Life type (A_SFLTY=3) and is not other provision (A_OPROV=0) and does count towards the Skills for Life target (A_SFL=1), Provision Matrix is set to ‘SFL ESOL - within section 96/97’ (A_FE_PROVMIX_MATRIX=131).
g) If aim is considered to be a Language Skills for Life type (A_SFLTY=3) and is other provision (A_OPROV=1), Provision Matrix is set to ‘SFL ESOL - outside of section 96/97’ (A_FE_PROVMIX_MATRIX=132).
h) If aim is considered to be a Literacy Skills for Life type (A_SFLTY=1) and is not other provision (A_OPROV=0) and does not count towards the Skills for Life target (A_SFL=0), Provision Matrix is set to ‘SFL LITERACY – within section 96/97 cannot contribute to target’ (A_FE_PROVMIX_MATRIX=120).
i) If aim is considered to be a Literacy Skills for Life type (A_SFLTY=1) and is not other provision (A_OPROV=0) and does count towards the Skills for Life target (A_SFL=1), Provision Matrix is set to ‘SFL Literacy - within section 96/97’ (A_FE_PROVMIX_MATRIX=121).
j) If aim is considered to be a Literacy Skills for Life type (A_SFLTY=1) and is other provision (A_OPROV=1), Provision Matrix is set to ‘SFL Literacy – outside of section 96/97’ (A_FE_PROVMIX_MATRIX=122).
k) If aim is considered to be a Numeracy Skills for Life type (A_SFLTY=2) and is not other provision (A_OPROV=0) and does not count towards the Skills for Life target (A_SFL=0), Provision Matrix is set to ‘SFL NUMERACY – within section 96/97 cannot contribute to target’ (A_FE_PROVMIX_MATRIX=110).
l) If aim is considered to be a Numeracy Skills for Life type (A_SFLTY=2) and is not other provision (A_OPROV=0) and does count towards the Skills for Life target (A_SFL=1), Provision Matrix is set to ‘SFL Numeracy - within section 96/97’ (A_FE_PROVMIX_MATRIX=111).
m) If aim is considered to be a Literacy Skills for Life type (A_SFLTY=2) and is other provision (A_OPROV=1), Provision Matrix is set to ‘SFL Numeracy – outside of section 96/97’ (A_FE_PROVMIX_MATRIX=112).
n) If aim is flagged as contributing towards Full level 2 (A_L2CAT= 4) in the Learning Aims Database (LAD), Provision Matrix is set to ‘GCSEs (excluding SFL GCSEs)’ (A_FE_PROVMIX_MATRIX=26).
o) If aim is Family Learning, Personal Community Developmental Learning, Neighbourhood and Community Learning (A58= 01, 02, 03 or 04). Provision Matrix is set to ‘Safeguarded Adult Learning’ (A_FE_PROVMIX_MATRIX=112).
p) If aim is Notional NVQ level 4, 5 or higher (A_NOTION=4,5 or H) and is not Other provision (A_OPROV=0), Provision Matrix is set to ‘Level 4 and above – within section 96/97’ (A_FE_PROVMIX_MATRIX=41).
q) If aim is Notional NVQ level 4, 5 or higher (A_NOTION=4,5 or H) and is Other provision (A_OPROV<>0), Provision Matrix is set to ‘Level 4 and above - outside of section 96/97’ (A_FE_PROVMIX_MATRIX=42).
r) If aim is Notional NVQ level 3 (A_NOTION=3) and is not Other provision (A_OPROV=0), Provision Matrix is set to ‘Level 3 – within section 96/97 excluding aims that can contribute towards the full level 3 threshold’ (A_FE_PROVMIX_MATRIX=31).
s) If aim is Notional NVQ level 3 (A_NOTION=3) and is Other provision (A_OPROV<>0), Provision Matrix is set to ‘Level 3 – outside of section 96/97 excluding aims that can contribute towards the full level 3 threshold’ (A_FE_PROVMIX_MATRIX=32).
t) If aim is Notional NVQ level 2 (A_NOTION=2) and is not Other provision (A_OPROV=0), Provision Matrix is set to ‘Level 2 – within section 96/97 excluding SFL aims and those that can contribute towards the full level 2 threshold’ (A_FE_PROVMIX_MATRIX=21).
u) If aim is Notional NVQ level 2 (A_NOTION=2) and is Other provision (A_OPROV<>0), Provision Matrix is set to ‘Level 2- outside of section 96/97 excluding SFL aims and those that can contribute towards the full level 2 threshold’ (A_FE_PROVMIX_MATRIX=22).
v) If aim is Notional NVQ level 1 (A_NOTION=1) and is not Other provision (A_OPROV=0), Provision Matrix is set to ‘Level 1 – within section 96/97 excluding SFL aims’ (A_FE_PROVMIX_MATRIX=11).
w) If aim is Notional NVQ level 1 (A_NOTION=1) and is Other provision (A_OPROV<>0), Provision Matrix is set to ‘Level 1 - outside of section 96/97 excluding SFL aims’ (A_FE_PROVMIX_MATRIX=12).
x) If aim is Notional NVQ level Entry (A_NOTION=E) and is not Other provision (A_OPROV=0), Provision Matrix is set to ‘Level Entry - within section 96/97 excluding SFL aims’ (A_FE_PROVMIX_MATRIX=1).
y) If aim is Notional NVQ level Entry (A_NOTION=1) and is Other provision (A_OPROV<>0), Provision Matrix is set to ‘Level Entry - outside of section 96/97 excluding SFL aims’ (A_FE_PROVMIX_MATRIX=2).
z) If the aim does not meet any of the above criteria then it is set to 999.
PROVISION MIX MATRIX SAMPLE CODE
1. The following SPSS code is provided to illustrate the Provision Mix Matrix data definition.
A_FE_PROVMIX_MATRIX
2. The following table shows the steps required to derive A_FE_PROVMIX_MATRIX
| Step |
Condition |
Action/Action if true |
Action if false |
| 1 |
DOES Full level 2 category = Full level 2 Qualification (A_L2cat = “1”) |
Set A_FE_PROVMIX_MATRIX to 25 |
Go to 2 |
| 2 |
Does LSC funded Status = QAA recognised Access to HE course (a_fun_st=”04”) |
Set A_FE_PROVMIX_MATRIX to 39 |
Go to 3 |
| 3 |
Does Full level 3 category = Full level 3 Qualification (a_L3cat = “1”) |
Set A_FE_PROVMIX_MATRIX to 35 |
Go to 4 |
| 4 |
Does Full level 3 category = As/a2 or A Levels (a_L3cat = “2” OR “3”) |
Set A_FE_PROVMIX_MATRIX to 36 |
Go to 5 |
| 5 |
Is the Skills for Life Type Language and the aim is not other provision and the aim does not count towards the skills for life target (A_OPROV=0 AND a_sflty = 3 AND A_SFL =0) |
Set A_FE_PROVMIX_MATRIX to 130 |
Go to 6 |
| 6 |
Is the Skills for Life Type Language and the aim is not other provision and the aim does count towards the skills for life target (A_OPROV=0 AND a_sflty = 3 AND A_SFL =1) |
Set A_FE_PROVMIX_MATRIX to 131 |
Go to 7 |
| 7 |
Is the Skills for Life Type Language and the aim is other provision (A_OPROV <> 0 AND a_sflty = 3) |
Set A_FE_PROVMIX_MATRIX to 132 |
Go to 8 |
| 8 |
Is the Skills for Life Type Literacy and the aim is not other provision and does not count towards the skills for life target (A_OPROV=0 AND a_sflty = 1 AND A_SFL = 0) |
Set A_FE_PROVMIX_MATRIX to 120 |
Go to 9 |
| 9 |
Is the Skills for Life Type Literacy and the aim is not other provision and does count towards the skills for life target (A_OPROV=0 AND a_sflty = 1 AND A_SFL = 1) |
Set A_FE_PROVMIX_MATRIX to 121 |
Go to 10 |
| 10 |
Is the Skills for Life Type Literacy and the aim is other provision (A_OPROV<>0 AND a_sflty = 1) |
Set A_FE_PROVMIX_MATRIX to 122 |
Go to 11 |
| 11 |
Is the Skills for Life Type Numeracy and the aim is not other provision and the aim does not count towards the skills for life target (A_OPROV=0 AND a_sflty = 2 AND A_SFL =0) |
Set A_FE_PROVMIX_MATRIX to 110 |
Go to 12 |
| 12 |
Is the Skills for Life Type Numeracy and the aim is not other provision and does count towards the skills for life target (A_OPROV=0 AND a_sflty = 2 AND A_SFL =1) |
Set A_FE_PROVMIX_MATRIX to 111 |
Go to 13 |
| 13 |
Is the Skills for Life Type Numeracy and the aim is other provision (A_OPROV <> 0 AND a_sflty = 2) |
Set A_FE_PROVMIX_MATRIX to 112 |
Go to 14 |
| 14 |
Is the full level 2 Category GCSE (a_l2cat = 4) |
Set A_FE_PROVMIX_MATRIX to 26 |
Go to 15 |
| 15 |
Is the aim family learning, PCDL or Neighbourhood and community learning (A58 = 01,02,03 or 04) |
Set A_FE_PROVMIX_MATRIX to 70 |
Go to 16 |
| 16 |
Is the Notional NVQ level of the aim 4, 5 or higher and the aim is not other provision (A_OPROV = 0 AND a_notion = (4,5 or H)) |
Set A_FE_PROVMIX_MATRIX to 41 |
Go to 17 |
| 17 |
Is the Notional NVQ level of the aim 4, 5 or higher and the aim is other provision (A_OPROV <> 0 AND a_notion = (4,5 or H)) |
Set A_FE_PROVMIX_MATRIX to 42 |
Go to 18 |
| 18 |
Is the Notional NVQ level of the aim 3 and the aim is not other provision (A_OPROV = 0 AND a_notion = 3) |
Set A_FE_PROVMIX_MATRIX to 31 |
Go to 19 |
| 19 |
Is the Notional NVQ level of the aim 3 and the aim is other provision (A_OPROV <> 0 AND a_notion = 3) |
Set A_FE_PROVMIX_MATRIX to 32 |
Go to 20 |
| 20 |
Is the Notional NVQ level of the aim 2 and the aim is not other provision (A_OPROV = 0 AND a_notion = 2) |
Set A_FE_PROVMIX_MATRIX to 21 |
Go to 21 |
| 21 |
Is the Notional NVQ level of the aim 2 and the aim is other provision (A_OPROV <> 0 AND a_notion = 2) |
Set A_FE_PROVMIX_MATRIX to 22 |
Go to 22 |
| 22 |
Is the Notional NVQ level of the aim 1 and the aim is not other provision (A_OPROV = 0 AND a_notion = 1) |
Set A_FE_PROVMIX_MATRIX to 11 |
Go to 23 |
| 23 |
Is the Notional NVQ level of the aim 1 and the aim is other provision (A_OPROV <> 0 AND a_notion = 1) |
Set A_FE_PROVMIX_MATRIX to 12 |
Go to 24 |
| 24 |
Is the Notional NVQ level of the aim Entry and the aim is not other provision (A_OPROV = 0 AND a_notion = “E”) |
Set A_FE_PROVMIX_MATRIX to 1 |
Go to 25 |
| 25 |
Is the Notional NVQ level of the aim entry and the aim is other provision (A_OPROV <> 0 AND a_notion = E) |
Set A_FE_PROVMIX_MATRIX to 2 |
Set A_FE_PROVMIX_MATRIX to 999 |
| Step |
Condition |
Action/Action if true |
Action if false |
| 1 |
Does A_FE_PROVMIX_MATRIX contain a value |
None |
Set A_FE_PROVMIX_MATRIX = -1 |
3. The following SPSS code illustrates how to derive A_FE_PROVMIX_MATRIX.
|
**-Define aim level variable (A_FE_PROVMIX_MATRIX) for provision mix categories-------------------------------------************************. *Hierachy puts GCSEs after SFL to ensure GCSE Maths and English go in SFL category. *Note a05 relates to learner entitlement funding. *This needs to be added into funding figures.
GET FILE = ……………………….Aims data set.
SORT CASES BY A09. MATCH FILES /FILE = * /TABLE = …..Analytical LAD data set /BY A09.
recode a_sflty (MISSING=-9999).
COMPUTE A_FE_PROVMIX_MATRIX=0. DO IF ANY(a_l2cat,"1"). +COMPUTE A_FE_PROVMIX_MATRIX=25. ELSE IF (a_fun_st="04"). +COMPUTE A_FE_PROVMIX_MATRIX=39. ELSE IF ANY(a_l3cat,"1"). +COMPUTE A_FE_PROVMIX_MATRIX=35. ELSE IF ANY(a_l3cat,"2","3"). +COMPUTE A_FE_PROVMIX_MATRIX=36. ELSE IF (A_OPROV=0 and a_sflty =3 AND A_SFL =0). +COMPUTE A_FE_PROVMIX_MATRIX=130. ELSE IF (A_OPROV=0 and a_sflty =3 AND A_SFL =1). +COMPUTE A_FE_PROVMIX_MATRIX=131. ELSE IF (A_OPROV <> 0 and ANY a_sflty =3). +COMPUTE A_FE_PROVMIX_MATRIX=132. ELSE IF (A_OPROV=0 and a_sflty = 1 AND A_SFL = 0). +COMPUTE A_FE_PROVMIX_MATRIX=120. ELSE IF (A_OPROV=0 and a_sflty = 1 AND A_SFL = 1). +COMPUTE A_FE_PROVMIX_MATRIX=121. ELSE IF (A_OPROV <>0 and a_sflty = 1). +COMPUTE A_FE_PROVMIX_MATRIX=122. ELSE IF (A_OPROV=0 and a_sflty = 2 AND A_SFL =0). +COMPUTE A_FE_PROVMIX_MATRIX=110. ELSE IF (A_OPROV=0 and ANY(a_sflty = 2 AND A_SFL =1). +COMPUTE A_FE_PROVMIX_MATRIX=111. ELSE IF (A_OPROV <> 0 and ANY(a_sflty = 2). +COMPUTE A_FE_PROVMIX_MATRIX=112. ELSE IF ANY(a_l2cat,"4"). +COMPUTE A_FE_PROVMIX_MATRIX=26. ELSE IF (ANY(A58,01,02,03,04) and not Missing(A58)). +COMPUTE A_FE_PROVMIX_MATRIX=70. ELSE IF (A_OPROV=0 and ANY(a_notion,"4","5","H")). +COMPUTE A_FE_PROVMIX_MATRIX=41. ELSE IF (A_OPROV<>0 and ANY(a_notion,"4","5","H")). +COMPUTE A_FE_PROVMIX_MATRIX=42. ELSE IF (A_OPROV=0 and a_notion="3"). +COMPUTE A_FE_PROVMIX_MATRIX=31. ELSE IF (A_OPROV<>0 and a_notion="3"). +COMPUTE A_FE_PROVMIX_MATRIX=32. ELSE IF (A_OPROV=0 and a_notion="2"). +COMPUTE A_FE_PROVMIX_MATRIX=21. ELSE IF (A_OPROV<>0 and a_notion="2"). +COMPUTE A_FE_PROVMIX_MATRIX=22. ELSE IF (A_OPROV=0 and a_notion="1"). +COMPUTE A_FE_PROVMIX_MATRIX=11. ELSE IF (A_OPROV<>0 and a_notion="1"). +COMPUTE A_FE_PROVMIX_MATRIX=12. ELSE IF (A_OPROV=0 and a_notion="E"). +COMPUTE A_FE_PROVMIX_MATRIX=1. ELSE IF (A_OPROV<>0 and a_notion="E"). +COMPUTE A_FE_PROVMIX_MATRIX=2. ELSE. +COMPUTE A_FE_PROVMIX_MATRIX=999. END IF.
recode a_sflty (-9999=-1) /A_FE_PROVMIX_MATRIX= (SYSMIS=-1).
VARIABLE LABELS A_FE_PROVMIX_MATRIX 'A_FE_PROVMIX_MATRIX FE provision mix matrix'. VALUE LABELS A_FE_PROVMIX_MATRIX 1 'Level Entry - within section 96/97 excluding SFL aims' 2 'Level Entry - outside of section 96/97 excluding SFL aims' 11 'Level 1 - within section 96/97 excluding SFL aims' 12 'Level 1 - outside of section 96/97 excluding SFL aims' 21 'Level 2 - within section 96/97 excluding SFL aims and those that can contribute towards the full level 2 threshold' 22 'Level 2- outside of section 96/97 excluding SFL aims and those that can contribute towards the full level 2 threshold' 25 'Aims that entirely satisfy the Full level 2 threshold' 26 'GCSEs (excluding SFL GCSEs)' 31 'Level 3 - within section 96/97 excluding SFL aims and those that can contribute towards the full level 3 threshold' 32 'Level 3 – outside of section 96/97 excluding SFL aims and those that can contribute towards the full level 3 threshold' 35 'Aims that entirely satisfy the Full level 3 threshold (excluding Access to HE)' 36 'Alevel/Aslevel/AVCE' 39 'QAA Recognised Access to Higher Education Courses ' 41 'Level 4 and above – within section 96/97' 42 'Level 4 and above - outside of section 96/97' 70 'Safeguarded Adult Learning ' 110 'SFL Numeracy - within section 96/97 not counting towards the target’ 111 'SFL Numeracy - within section 96/97 expected to count towards target' 112 'SFL Numeracy - outside of section 96/97' 120 'SFL Literacy - within section 96/97 not counting towards the target’ 121 'SFL Literacy - within section 96/97 expected to count towards target' 122 'SFL Literacy - outside of section 96/97' 130 ‘SFL ESOL – within section 96/97 not counting towards the target 131 'SFL ESOL - within section 96/97 expected to count towards the target' 132 'SFL ESOL - outside of section 96/97' 999 'Unknown level'.
|
4. The following SQL code illustrates how to derive A_FE_PROVMIX_MATRIX:
|
select
L01, L03, A05 , case when A_L2CAT='1' then 25 when a_fun_st='04' then 39 when a_L3cat='1' then 35 when a_L3cat in ('2','3') then 36 when A_OPROV=0 and A_SFLTY=3 and b.A_SFL=0 then 130 when A_OPROV=0 and A_SFLTY=3 and b.A_SFL=1 then 131 when A_OPROV<>0 and A_SFLTY=3 then 132 when A_OPROV=0 and A_SFLTY=1 and b.A_SFL=0 then 120 when A_OPROV=0 and A_SFLTY=1 and b.A_SFL=1 then 121 when A_OPROV<>0 and A_SFLTY=1 then 122 when A_OPROV=0 and A_SFLTY=2 and b.A_SFL=0 then 110 when A_OPROV=0 and A_SFLTY=2 and b.A_SFL=1 then 111 when A_OPROV<>0 and A_SFLTY=2 then 112 when A_L2CAT='4' then 26 when A58 in (01,02,03,04) then 70 when A_OPROV=0 and A_NOTION in ('4','5','H') then 41 when A_OPROV<>0 and A_NOTION in ('4','5','H') then 42 when A_OPROV=0 and A_NOTION='3' then 31 when A_OPROV<>0 and A_NOTION='3' then 32 when A_OPROV=0 and A_NOTION='2' then 21 when A_OPROV<>0 and A_NOTION='2' then 22 when A_OPROV=0 and A_NOTION='1' then 11 when A_OPROV<>0 and A_NOTION='1' then 12 when A_OPROV=0 and A_NOTION='E' then 1 when A_OPROV<>0 and A_NOTION='E' then 2 else 999 end as A_FE_PROVMIX_MATRIX
from
ILR0910_E_AIMS a
join
LAD_0910 b
on a.A09 = b.A09 |
Date last modfied: 07th December 2009