better type annotations