Initial commit. All 4 subtasks included.