checking instead of inferring types