Over the past couple of years, serverless computing has become a popular way of structuring and deploying applications in the cloud. However, several practical and research challenges remain. In this paper, we provide the first step to address two open issues. We developed a simple extension language (SFL) and a compiler to enable software developers to write entire serverless applications as one piece. The compiler generates necessary orchestration code that automatically binds several functions together. In addition, the SFL tools allow programmers to write stateful serverless functions with the compiler generating supporting cloud infrastructure for the storage and access of the application state. We evaluate our system using simple benchmark programs, comparing the resulting performance to Azure durable functions, which directly supports statefulness. The execution times we see in our unoptimized code are only slightly worse than what we measure on the Azure platform. Overall execution times are considerably better due to better scheduling by AWS Lambda than the Azure durable functions.