add unit tests for parallelism, referntial transparency