diff --git a/lib/types/hashtable.c b/lib/types/hashtable.c
index 4eed6ef01a01d2b24a765ac1286c994dc8c7c0cb..a7c2631b5c1de4d5e11cbc9050f9478399b855fc 100644
--- a/lib/types/hashtable.c
+++ b/lib/types/hashtable.c
@@ -1,3 +1,22 @@
+/* hashtable.c
+ *
+ * Copyright 2019 Bruce Cowan <bruce@bcowan.me.uk>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
 #include "hashtable.h"
 #include "mem.h"
 
diff --git a/lib/types/hashtable.h b/lib/types/hashtable.h
index c71f049c34d779a3ab2b37ccb5f93227aaca7680..c263c6464c35b2bae73a032a42376d1f83efd519 100644
--- a/lib/types/hashtable.h
+++ b/lib/types/hashtable.h
@@ -1,3 +1,22 @@
+/* hashtable.h
+ *
+ * Copyright 2019 Bruce Cowan <bruce@bcowan.me.uk>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
 #pragma once
 
 #include "slist.h"
diff --git a/lib/types/slist.c b/lib/types/slist.c
index a15cc63e0f7bd24f7c898150c97c53a665ffeba4..300c53f1ebe347ee0bac622a025602a0b22a9815 100644
--- a/lib/types/slist.c
+++ b/lib/types/slist.c
@@ -1,3 +1,22 @@
+/* slist.c
+ *
+ * Copyright 2019 Bruce Cowan <bruce@bcowan.me.uk>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
 #include "slist.h"
 
 #include <stdlib.h>
diff --git a/lib/types/slist.h b/lib/types/slist.h
index 243a0b6038a8287f185117db1a91fb82d588212b..dc2ad706bb567a0e23170a5c3dca17991e2da296 100644
--- a/lib/types/slist.h
+++ b/lib/types/slist.h
@@ -1,3 +1,22 @@
+/* slist.h
+ *
+ * Copyright 2019 Bruce Cowan <bruce@bcowan.me.uk>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
 #pragma once
 
 #include "types.h"
diff --git a/lib/types/types.h b/lib/types/types.h
index 7b59b918174f032000123e0615be58d747b4807a..66aeaf1b7357d5c26bd0e96906d19e3322ed6f42 100644
--- a/lib/types/types.h
+++ b/lib/types/types.h
@@ -1,3 +1,22 @@
+/* types.h
+ *
+ * Copyright 2019 Bruce Cowan <bruce@bcowan.me.uk>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
 #pragma once
 
 #include <stdbool.h>
diff --git a/lib/utils/utils.c b/lib/utils/utils.c
index 4ca6fa4c1d3d21b6dee922fb7ef3febd33006cd3..2ee64a17afcab142d6d2906536ffb0371398b44d 100644
--- a/lib/utils/utils.c
+++ b/lib/utils/utils.c
@@ -1,3 +1,22 @@
+/* utils.c
+ *
+ * Copyright 2019 Bruce Cowan <bruce@bcowan.me.uk>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/lib/utils/utils.h b/lib/utils/utils.h
index 4a21c4b22c1808873954b15dc01e1c88111e18f8..765ded804643631be84a0343e4ce79b82d17659c 100644
--- a/lib/utils/utils.h
+++ b/lib/utils/utils.h
@@ -1,3 +1,22 @@
+/* utils.h
+ *
+ * Copyright 2019 Bruce Cowan <bruce@bcowan.me.uk>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
 #pragma once
 
 int *