more strict type