add a basic theme
validate support optional callback