add Partition(), tests