From http://stackoverflow.com/questions/4478661/getter-and-setter