More sophisticated approach