this is for learning  purpose