use include_once on module loading to be safer
make EmptyContent more flexible
fix bug when no router following admin, add dashboard