better comented code, error handling improvement in progress
updated description