initial commit. 90% working