engineer class - still thinking about ways to implement choose method ugh