Added different improved versions and examples