improvements based on feedback