initial comepleted code