Use page action and alomost complete server side.