Finished hw to specifications