working version without polymer