final version for sharing