added all completed code