Added themes and refactored a lot of stuff