Completely refactored the phonebook implementation, added regular expressions to support matching partial names