add some data validation, improve readme