changes based on feedback
actually implemented sample