yet more type safety