Reorganized source code, added theme support and a default theme