Work on write call, different cases are becoming pretty complex