refactoring

- renamed canPerformNumericPromotionForAll to canPerformNumericPromotion
- started to refactor ctors to have only one return