add 'get' and improve validation