add user system; use Flat UI; modulize classes