strong typing all over the place!