added possible alternative solutions