redo theme framework again