refactor theme and add @this support to CSS