It is pity that we need type signatures here