basic commented outline of what code should look like