implementing volume operations