first version with the component architecture like WebObject