add gen server skeleton