I might abstract this more in the future. These should be objects we can control the interface to. I'd like to be able to to do 

`instance.public_ip` and it returns the right thing.