fixed validators and added address types to user addres
optimized required functions
added unit tests for Address and UserAddress