improve sparse operations
optimisations