three main pre-reqs