improvements based on feedback - still not perfect, but better