add setter utility
add validate utility