add tip.jsp and underlying implementation