removed (almost) all scalar operations - now as 'fast' as C version