Us Patent 8 644 029