refactor, seperate module
optimize html structure and style