intermidiate save abstract class