widget SDK implementation