implementing other operators. Type system improved