be more specific with types