with my additions and working