more strict validation