Using flow type annotations to improve the overall developer experience, and to create an overall more maintainable codebase