adding intial files
bulk of functionality