final version for Sprint 3