Refactor; implement macro for require
Formatting
Add theme support