enforce more strong typing in compiler