Themes in Core v1

Fresh branch from a clean master
This isn't required, since Theme can accept undefined as the second parameter.