added partion method