one more variant (smarter) added