post logic