no longer need to declare 3 types