initial commit, shell part finished