added dense n sparse - still too prosy