try to write a blog framework from the scratch