added general_shape