the initial commit
setup the template's directory structure and implement some of the features.