initial commit, including basic folder structure and code layout