starting rewrite after jean&sean comments
REFERENCE FAIL FIXEDDD