refactoring of Address