efficient method