inital checkin needs alote of refactoring still