draft version
//to-do: comment,authorize