further improvements based on feedback