initial commit alot yet to fix