For the whitebox part of the assignment