unnecessary check as abstract