cleans up code by separating trader responsibilities