implemented sharing