diff --git a/doc/mainpage.txt b/doc/mainpage.txt
index c33f60173fa14adb756b58c577ca1ef7f37797eb..e0cdde23dfc56adf77f24eb800d8da243e9f2ad1 100644
--- a/doc/mainpage.txt
+++ b/doc/mainpage.txt
@@ -1,8 +1,8 @@
-/*! \mainpage librelaxisloader manual
+/*! \mainpage libeismultiplexer manual
 
-libeismulitplexer is a shared library that allows you to controll EISmulitplexer devices
+libeismultiplexer is a shared library that allows you to control EISmultiplexer devices
 
-An API referance can be found here: \subpage API
+An API reference can be found here: \subpage API
 
 ## Example usage:
 
@@ -14,11 +14,11 @@ _______
 
 int main(int argc, char* argv[])
 {
-	// Eatch connection to a device is required to have a corrisponding eismulitplexer struct
-	struct eismulitplexer multiplexer;
+	// Each connection to a device is required to have a corresponding eismultiplexer struct
+	struct eismultiplexer multiplexer;
 
 	// Connect to the first device found
-	int ret = eismulitplexer_connect(&multiplexer, 0);
+	int ret = eismultiplexer_connect(&multiplexer, 0);
 	if(ret != 0)
 	{
 		printf("Can not connect to EISmultiplexer device\n");
@@ -26,7 +26,7 @@ int main(int argc, char* argv[])
 	}
 
 	// Connect channels A and C to the common output
-	ret = eismulitplexer_connect_channel(&multiplexer, CHANNEL_A | CHANNEL_C);
+	ret = eismultiplexer_connect_channel(&multiplexer, CHANNEL_A | CHANNEL_C);
 	if(ret != 0)
 	{
 		printf("Failure to communicate with the device\n");
@@ -34,7 +34,7 @@ int main(int argc, char* argv[])
 	}
 
 	// Disconnect from device
-	eismulitplexer_disconnect(&multiplexer);
+	eismultiplexer_disconnect(&multiplexer);
 	return 0;
 }
 @endcode
diff --git a/eismultiplexer.c b/eismultiplexer.c
index 67a653c4c9de9c96a2d984b7ded3d6ad846be6a9..c861420c333a722ada12193752c2567966d22c27 100644
--- a/eismultiplexer.c
+++ b/eismultiplexer.c
@@ -32,7 +32,7 @@ static void usleep(uint64_t microseconds)
 
 static void dataCallback(uint8_t request, unsigned char* data, size_t length, void* user_data)
 {
-	struct eismulitplexer* muliplexer = user_data;
+	struct eismultiplexer* muliplexer = user_data;
 
 	if(length >= 1)
 		muliplexer->activeChannels = data[0];
@@ -40,7 +40,7 @@ static void dataCallback(uint8_t request, unsigned char* data, size_t length, vo
 	sem_post(&muliplexer->readSem);
 }
 
-int eismulitplexer_connect(struct eismulitplexer* muliplexer, int serial)
+int eismultiplexer_connect(struct eismultiplexer* muliplexer, int serial)
 {
 	int ret;
 	muliplexer->priv = malloc(sizeof(*muliplexer->priv));
@@ -61,7 +61,7 @@ int eismulitplexer_connect(struct eismulitplexer* muliplexer, int serial)
 	return 0;
 }
 
-int eismulitplexer_connect_channel_exclusive(struct eismulitplexer* muliplexer, channel_t channel)
+int eismultiplexer_connect_channel_exclusive(struct eismultiplexer* muliplexer, channel_t channel)
 {
 	uint16_t wValue;
 	// we compile with fno-strict-aliasing
@@ -74,21 +74,21 @@ int eismulitplexer_connect_channel_exclusive(struct eismulitplexer* muliplexer,
 	return ret;
 }
 
-int eismulitplexer_connect_channel(struct eismulitplexer* muliplexer, channel_t channel)
+int eismultiplexer_connect_channel(struct eismultiplexer* muliplexer, channel_t channel)
 {
-	channel_t channels = eismulitplexer_get_connected(muliplexer);
+	channel_t channels = eismultiplexer_get_connected(muliplexer);
 	channels |= channel;
-	return eismulitplexer_connect_channel_exclusive(muliplexer, channels);
+	return eismultiplexer_connect_channel_exclusive(muliplexer, channels);
 }
 
-int eismulitplexer_disconnect_channel(struct eismulitplexer* muliplexer, channel_t channel)
+int eismultiplexer_disconnect_channel(struct eismultiplexer* muliplexer, channel_t channel)
 {
-	channel_t channels = eismulitplexer_get_connected(muliplexer);
+	channel_t channels = eismultiplexer_get_connected(muliplexer);
 	channels &= ~channel;
-	return eismulitplexer_connect_channel_exclusive(muliplexer, channels);
+	return eismultiplexer_connect_channel_exclusive(muliplexer, channels);
 }
 
-channel_t eismulitplexer_get_connected(struct eismulitplexer* muliplexer)
+channel_t eismultiplexer_get_connected(struct eismultiplexer* muliplexer)
 {
 	usbshm_readControlTransfer(muliplexer->priv, 3, 1);
 	sem_wait(&muliplexer->readSem);
@@ -96,7 +96,7 @@ channel_t eismulitplexer_get_connected(struct eismulitplexer* muliplexer)
 }
 
 
-int eismulitplexer_set_led(struct eismulitplexer* muliplexer, bool on)
+int eismultiplexer_set_led(struct eismultiplexer* muliplexer, bool on)
 {
 	int ret;
 	while((ret = usbshm_writeControlTransfer(muliplexer->priv, on, NULL, 0, 0, 0)) == USBSHM_ERROR_AGAIN)
@@ -104,7 +104,7 @@ int eismulitplexer_set_led(struct eismulitplexer* muliplexer, bool on)
 	return ret;
 }
 
-void eismulitplexer_disconnect(struct eismulitplexer* muliplexer)
+void eismultiplexer_disconnect(struct eismultiplexer* muliplexer)
 {
 	usbshm_distroy(muliplexer->priv);
 	free(muliplexer->priv);
diff --git a/eismultiplexer.h b/eismultiplexer.h
index 87d8d545f5cbce283990c22c878978456a3f4297..ef4a29830c0dace3f07176a8d784c6953495981f 100644
--- a/eismultiplexer.h
+++ b/eismultiplexer.h
@@ -23,9 +23,9 @@
 #include <stdbool.h>
 
 /**
-Api to controll EISmulitplexer devices.
+Api to controll EISmultiplexer devices.
 * @defgroup API User API
-* This api allows you to controll the EISmulitplexer device.
+* This api allows you to controll the EISmultiplexer device.
 * @{
 */
 
@@ -44,64 +44,64 @@ typedef enum {
 	CHANNEL_NONE = 0,
 } channel_t;
 
-struct eismulitplexer {
+struct eismultiplexer {
 	struct usbshm* priv;
 	sem_t readSem;
 	channel_t activeChannels;
 };
 
 /**
- * @brief Attempts to connect to a EISmulitplexer device and initalizes a eismulitplexer struct
- * @param muliplexer pointer to a eismulitplexer struct to initalize
+ * @brief Attempts to connect to a EISmultiplexer device and initalizes a eismultiplexer struct
+ * @param muliplexer pointer to a eismultiplexer struct to initalize
  * @param serial The serial number of the device to connect to, or 0 for any
  * @return 0 on sucess and < 0 on failure
  */
-int eismulitplexer_connect(struct eismulitplexer* muliplexer, int serial);
+int eismultiplexer_connect(struct eismultiplexer* muliplexer, int serial);
 
 /**
  * @brief Conects the given channel(s) to the common inputs
- * @param muliplexer pointer to a eismulitplexer struct
+ * @param muliplexer pointer to a eismultiplexer struct
  * @param channel A channel to connect, multiple channels can be specified by or'ing together the chanel flags e.g. (CHANNEL_A | CHANNEL_B)
  * @return 0 on sucess and < 0 on failure
  */
-int eismulitplexer_connect_channel(struct eismulitplexer* muliplexer, channel_t channel);
+int eismultiplexer_connect_channel(struct eismultiplexer* muliplexer, channel_t channel);
 
 /**
  * @brief Conects the given channel(s) to the common inputs disconnecting all others
- * @param muliplexer pointer to a eismulitplexer struct
+ * @param muliplexer pointer to a eismultiplexer struct
  * @param channel A channel to connect, multiple channels can be specified by or'ing together the chanel flags e.g. (CHANNEL_A | CHANNEL_B)
  * @return 0 on sucess and < 0 on failure
  */
-int eismulitplexer_connect_channel_exclusive(struct eismulitplexer* muliplexer, channel_t channel);
+int eismultiplexer_connect_channel_exclusive(struct eismultiplexer* muliplexer, channel_t channel);
 
 /**
  * @brief Disconnect the given channel(s) to the common inputs disconnecting all others
- * @param muliplexer pointer to a eismulitplexer struct
+ * @param muliplexer pointer to a eismultiplexer struct
  * @param channel A channel to connect, multiple channels can be specified by or'ing together the chanel flags e.g. (CHANNEL_A | CHANNEL_B)
  * All channels can be dissconnected by passing CHANNEL_NONE
  * @return 0 on sucess and < 0 on failure
  */
-int eismulitplexer_disconnect_channel(struct eismulitplexer* muliplexer, channel_t channel);
+int eismultiplexer_disconnect_channel(struct eismultiplexer* muliplexer, channel_t channel);
 
 /**
  * @brief Returns the channels currently connected
- * @param muliplexer pointer to a eismulitplexer struct
+ * @param muliplexer pointer to a eismultiplexer struct
  * @return channels connected as a bitfield
  */
-channel_t eismulitplexer_get_connected(struct eismulitplexer* muliplexer);
+channel_t eismultiplexer_get_connected(struct eismultiplexer* muliplexer);
 
 /**
  * @brief Turns the led on the pcb on or off
- * @param muliplexer pointer to a eismulitplexer struct
+ * @param muliplexer pointer to a eismultiplexer struct
  * @param on true to turn the led on, false to turn it off
  * @return 0 on sucess and < 0 on failure
  */
-int eismulitplexer_set_led(struct eismulitplexer* muliplexer, bool on);
+int eismultiplexer_set_led(struct eismultiplexer* muliplexer, bool on);
 
 /**
- * @brief Disconnects from the eismulitplexer
+ * @brief Disconnects from the eismultiplexer
  */
-void eismulitplexer_disconnect(struct eismulitplexer* muliplexer);
+void eismultiplexer_disconnect(struct eismultiplexer* muliplexer);
 
 #ifdef __cplusplus
 }
diff --git a/main.c b/main.c
index 106352677a7dee7930e82b574ff78e54566b3e5e..9522b4b3fb5f716a75b7ffc12e3d34668a010200 100644
--- a/main.c
+++ b/main.c
@@ -74,9 +74,9 @@ int main(int argc, char* argv[])
 		return 0;
 	} 
 	
-	struct eismulitplexer multiplexer;
+	struct eismultiplexer multiplexer;
 	
-	if(eismulitplexer_connect(&multiplexer, 0))
+	if(eismultiplexer_connect(&multiplexer, 0))
 	{
 		printf("Can not connect to EISmultiplexer device\n");
 		return 1;
@@ -85,7 +85,7 @@ int main(int argc, char* argv[])
 	if(argc != 4)
 	{
 		print_help(argv[0]);
-		eismulitplexer_disconnect(&multiplexer);
+		eismultiplexer_disconnect(&multiplexer);
 		return 2;
 	}
 
@@ -93,29 +93,29 @@ int main(int argc, char* argv[])
 	if(channel == CHANNEL_NONE)
 	{
 		printf("%c is not a valid channel", argv[2][0]);
-		eismulitplexer_disconnect(&multiplexer);
+		eismultiplexer_disconnect(&multiplexer);
 		return 2;
 	}
 	
 	if(strcmp(argv[1], "connect") == 0)
 	{
-		if(eismulitplexer_connect_channel(&multiplexer, channel))
+		if(eismultiplexer_connect_channel(&multiplexer, channel))
 		{
 			printf("could not connect channel %c", argv[2][0]);
-			eismulitplexer_disconnect(&multiplexer);
+			eismultiplexer_disconnect(&multiplexer);
 			return 3;
 		}
 	}
 	else if(strcmp(argv[1], "disconnect") == 0)
 	{
-		if(eismulitplexer_disconnect_channel(&multiplexer, channel))
+		if(eismultiplexer_disconnect_channel(&multiplexer, channel))
 		{
 			printf("could not connect channel %c", argv[2][0]);
-			eismulitplexer_disconnect(&multiplexer);
+			eismultiplexer_disconnect(&multiplexer);
 			return 3;
 		}
 	}
 
-	eismulitplexer_disconnect(&multiplexer);
+	eismultiplexer_disconnect(&multiplexer);
 	return 0;
 }