Completed challenge. See readme for details