Refactoring the Address Data model and impl

Still need to implement update & enumerate functions