added missing methods to UserAddress
added some Base classes for better packaging