solution that works