Adding functionality and themeing

Beware, it's still extremely messy.