first version with examples