no jQuery dependence, CommonJS and AMD support