Added interface and comments

Left Object as is (made it into a struct though, making it a little more
acceptable that the variables are public, since it is a kind of
container...).