add validation maybe?