diff --git a/src/coscine/client.py b/src/coscine/client.py
index 2c4d02a5880615dacfb423aa12185e24708867b4..b70dd7c9fc88ca93476f1b16e7d76056e9a97fad 100644
--- a/src/coscine/client.py
+++ b/src/coscine/client.py
@@ -28,7 +28,7 @@ with Coscine servers.
 ###############################################################################
 
 from __future__ import annotations
-from typing import List, Union
+from typing import List, Optional, Union
 import urllib.parse
 import json
 import logging
@@ -502,7 +502,7 @@ class Client:
 
 ###############################################################################
 
-	def project_form(self, data: dict = None) -> ProjectForm:
+	def project_form(self, data: Optional[dict] = None) -> ProjectForm:
 		"""
 		Returns an empty project form.
 
@@ -519,7 +519,7 @@ class Client:
 
 ###############################################################################
 
-	def resource_form(self, data: dict = None) -> ResourceForm:
+	def resource_form(self, data: Optional[dict] = None) -> ResourceForm:
 		"""
 		Returns an empty resource form.
 
diff --git a/src/coscine/form.py b/src/coscine/form.py
index bdb9197365acc4c78739a959a77fbbdec2410a7c..34e1cb5a91d909b18039b0a816fd7ca39d3bfb7d 100644
--- a/src/coscine/form.py
+++ b/src/coscine/form.py
@@ -649,6 +649,7 @@ class InputForm:
 		"""
 		Generates Coscine formatted json-ld from an InputForm.
 		"""
+		return {}
 
 ###############################################################################
 
diff --git a/src/coscine/object.py b/src/coscine/object.py
index 5bdd2e9d4c709fdbcba098d12bf429d21cc6d94a..43ea6096c3a2b5f3d761a124d1059bba6d6ee412 100644
--- a/src/coscine/object.py
+++ b/src/coscine/object.py
@@ -240,7 +240,7 @@ class FileObject:
 ###############################################################################
 
 	def __init__(self, resource: Resource, data: dict,
-						metadata: dict = None) -> None:
+				metadata: Optional[dict] = None) -> None:
 		"""
 		Initializes the Coscine FileObject.
 
@@ -366,9 +366,12 @@ class FileObject:
 
 ###############################################################################
 
-	def download(self, path: str = "./",
-			callback: Callable[[int], None] = None,
-			preserve_path: bool = False) -> None:
+	def download(
+		self,
+		path: str = "./",
+		callback: Optional[Callable[[int], None]] = None,
+		preserve_path: Optional[bool] = False
+	) -> None:
 		"""
 		Downloads the file-like object to the local harddrive.
 
diff --git a/src/coscine/project.py b/src/coscine/project.py
index a7a5e51d995fb564c990b1864c8e0fbfd703afa6..19fe07ccdd5854dd0f1f1cdfe6973bc8853cbf18 100644
--- a/src/coscine/project.py
+++ b/src/coscine/project.py
@@ -139,7 +139,7 @@ class Project:
 ###############################################################################
 
 	def __init__(self, client: Client, data: dict,
-					parent: Project = None) -> None:
+			parent: Optional[Project] = None) -> None:
 		"""
 		Initializes a Coscine project object.
 
diff --git a/src/coscine/resource.py b/src/coscine/resource.py
index 912965045dfa4d3178353c77c02160f7af3b9938..d3103aeb0c7b1d554b9c1cc7de09b716217043ec 100644
--- a/src/coscine/resource.py
+++ b/src/coscine/resource.py
@@ -397,7 +397,7 @@ class Resource:
 
 ###############################################################################
 
-	def objects(self, path: str = None) -> List[FileObject]:
+	def objects(self, path: Optional[str] = None) -> List[FileObject]:
 		"""
 		Returns a list of Objects stored within the resource.
 
@@ -485,7 +485,7 @@ class Resource:
 		key: str,
 		file,
 		metadata: Union[MetadataForm, dict],
-		callback: Callable[[int], None] = None
+		callback: Optional[Callable[[int], None]] = None
 	) -> None:
 		"""
 		Uploads a file-like object to a resource on the Coscine server
@@ -535,7 +535,7 @@ class Resource:
 		self,
 		key: str,
 		file_handle,
-		callback: Callable[[int], None] = None
+		callback: Optional[Callable[[int], None]] = None
 	) -> None:
 		uri = self.client.uri("Blob", "Blob", self.id)
 		fields = {"files": (key, file_handle, "application/octect-stream")}
@@ -620,7 +620,7 @@ class Resource:
 
 ###############################################################################
 
-	def metadata_form(self, data: dict = None) -> MetadataForm:
+	def metadata_form(self, data: Optional[dict] = None) -> MetadataForm:
 		"""
 		Creates a MetadataForm for this resource
 
diff --git a/src/coscine/utils.py b/src/coscine/utils.py
index 20fc8ea51edd2c5112f63dd6f898c9469ddda192..ab997161f949f88243b6615e30ff346fbfb01c45 100644
--- a/src/coscine/utils.py
+++ b/src/coscine/utils.py
@@ -150,7 +150,7 @@ class ProgressBar:
 ###############################################################################
 
 	def __init__(self, enabled: bool, filesize: int, key: str,
-				callback: Callable[[int], None] = None) -> None:
+			callback: Optional[Callable[[int], None]] = None) -> None:
 		"""
 		Initializes a state-aware tqdm ProgressBar.