C# Syntax Question

Any clues what this is saying? What does the colon mean in this context? Any help is appreciated.

Specifically these 2 lines are confusing me badly:

public Observation(Observation
observation, bool isVisible) :
this(observation.entity,
observation.position, isVisible,
observation.timestamp) { }

and

public Observation(Entity entity, bool
isVisible) : this(entity,
entity.Position, isVisible, Time.time)
{ }

This is the whole script it is from:

using UnityEngine;

public class Observation
{
    public Entity entity
    {
        get;    
        private set;
    }

    public float timestamp
    {
        get;
        private set;
    }

    public Vector3 position
    {
        get;
        private set;
    }

    public bool isVisible
    {
        get;
        set;
    }

    public Observation(Observation observation, bool isVisible) : this(observation.entity, observation.position, isVisible, observation.timestamp) { }

    public Observation(Entity entity, bool isVisible) : this(entity, entity.Position, isVisible, Time.time) { }

    public Observation(Entity entity, Vector3 position, bool isVisible, float timestamp)
    {
        this.entity = entity;
        this.position = position;
        this.isVisible = isVisible;
        this.timestamp = timestamp;
    }
}

public Observation(Observation observation, bool isVisible) : this(observation.entity, observation.position, isVisible, observation.timestamp) { }

"this"is a reference to the current instance of the class. In the line above you simply make a call from one constructor to the other. It is equal to:

public Observation(Observation observation, bool isVisible)
{
        this.entity=observation.entity;
        this.position=observation.position;
        this.isVisible=isVisible;
        this.timestamp=observation.timestamp;
}

It calls other constructor using these arguments before executing the constructor called from elsewhere. It is useful for not rewriting the same code if you want to just add a little bit more stuff with more arguments. This can be nested.

This makes sense to me although I have never seen : used in a C# constructor:
http://stackoverflow.com/questions/1071148/what-does-this-colon-mean/1071156#1071156

http://stackoverflow.com/questions/17034475/in-c-sharp-what-category-does-the-colon-fall-into-and-what-does-it-really