adding safety so the compiler can interpret constructor calls correctly