working on direct sums