Add more annotation and more the code more normative