add recurring preference, refactor of HTTP post