Refactor/phone

Three concepts being used here to change around the Phone class to be a little cleaner. Take a look at each of the commits and their changes. Then take a look at it as a whole.