[#1277] add logic function