code complete, test and debug to complete