better post operation structure