more explicit types