more comments and architecture refining