diff --git a/ked/csl/interfaces/spi.h b/ked/csl/interfaces/spi.h
index d37dcd4..6c06638 100644
--- a/ked/csl/interfaces/spi.h
+++ b/ked/csl/interfaces/spi.h
@@ -20,6 +20,8 @@
 extern "C" {
 #endif
 
+#include "pin.h"
+#include "spi.h"
 #include <stdint.h>
 #include "hardwareDescription.h"
 
@@ -33,37 +35,113 @@ typedef enum{
 	LSB_FIRST
 }spi_framef_t;
 
+/*! \brief SPI cannel class
+ * This class cpntains the pin and spi channel number 
+ * select.
+ * */
+typedef struct{
+	pinNo_t pin;	/*!< pin number */	
+	spiCH_t spi;	/*!< spi hardware channel number */
+}spi_ch_t;
+
+typedef uint8_t (*readReg_t) (uint8_t); 
+
+// generic code
+
+/**
+ * \brief Set up SPI channel
+ * Set up a SPI channel by passig a hardware SPI channel and a chipselect pin.
+ * The chipselect pin will be set to high (chipselect is lowactive).
+ * \param *ch pointer to SPI channel
+ * \param spi_hw_ch SPI hardware channel
+ * \param chipslectPin designated pin for chipslect
+ */
+void spiSetupCH(spi_ch_t *ch, spiCH_t spi_hw_ch, pinNo_t chipselectPin);
+
+/**
+ * \brief Read register
+ * Read one byte from a one register with one byte address.
+ * \param *spi_ch spi pointer to spi channel object
+ * \param reg_address register address
+ * \return register content
+ */
+uint8_t spiReadReg(spi_ch_t *spi_ch,
+					  uint8_t reg_address);
+
+/**
+ * \brief Read Block
+ * Read a block of data starting at a given start address.
+ * This function makes use of the auto register increment of the device to be read from. 
+ * The address will be sent once and then data is read.
+ * \param *spi_ch pointer to spi cannel object
+ * \param start_address start address to the first register
+ * \param *buffer pointer to the buffer in which the read content is written into
+ * \param buf_len length of buffer
+ */
+void spiAutoReadBlock(spi_ch_t *spi_ch,
+						 uint8_t start_address,
+						 uint8_t* buffer,
+						 uint8_t buf_len);
+
+/**
+ * \brief Write register
+ * Write one byte to one register with one byte address.
+ * \param *spi_ch pointer to spi channel object
+ * \param reg_address register address
+ * \param data data byte to be written into register
+ *
+ */
+void spiWriteReg(spi_ch_t *spi_ch,
+					uint8_t reg_address,
+					uint8_t data);	
+/**
+ * \brief  Write data  block
+ * Write a block of data starting at a given start address.
+ * This function makes use of the auto register increment of the device to be written to. The
+ * address will be sent once an then data is written.
+ * \param *spi_ch pointer to spi channel object
+ * \param start_address start address of the first reister
+ * \param *data pointer to data to be written
+ * \param data_len length of data to be written
+ */
+void spiWriteBlock(spi_ch_t *spi_ch,
+					  uint8_t start_address,
+					  const uint8_t *data,
+					  uint8_t data_len);
+
+//implementation
+
 /**
  * @brief This is the spi hardware channel class
  * @param spi_hw_ch SPI hardware channel
  */
-void spi_init(spiCH_t spi_hw_ch);
+void spiInit(spiCH_t spi_hw_ch);
 
 /**
  * @brief SPI hardware peripheral reset
  * @param spi_hw_ch SPI hardware channel
  */
-void spi_reset(spiCH_t spi_hw_ch);
+void spiReset(spiCH_t spi_hw_ch);
 
 /**
  * @brief Enable spi hardware channel
  * @param spi_hw_ch SPI hardware channel
  */
-void spi_enable(spiCH_t spi_hw_ch);
+void spiEnable(spiCH_t spi_hw_ch);
 
 /**
  * @brief set SPI clock polarity
  * @param spi_hw_ch SPI hardware channel
  * @param clkPol Clock polarity
  */
-void spi_setPolarity(spiCH_t spi_hw_ch, spi_clkPol_t clkPol);
+void spiSetPolarity(spiCH_t spi_hw_ch, spi_clkPol_t clkPol);
 
 /**
  * @brief Set SPI frame format
  * @param spi_hw_ch SPI hardware cannel
  * @param framef Frame format
  */
-void spi_setFrameFormat(spiCH_t spi_hw_ch, spi_framef_t framef);
+void spiSetFrameFormat(spiCH_t spi_hw_ch, spi_framef_t framef);
 
 /**
  * @brief Set Clock Prescaler
@@ -72,7 +150,7 @@ void spi_setFrameFormat(spiCH_t spi_hw_ch, spi_framef_t framef);
  * @param spi_hw_ch SPI hardware channel
  * @param clkDiv
  */
-void spi_setClockPrescaler(spiCH_t spi_hw_ch,uint32_t clkDiv);
+void spiSetClockPrescaler(spiCH_t spi_hw_ch,uint32_t clkDiv);
 
 /*!
  * @brief Transmits and receives on byte of data
@@ -80,7 +158,7 @@ void spi_setClockPrescaler(spiCH_t spi_hw_ch,uint32_t clkDiv);
  * @param tx_data 'tx_data' The byte to be transmitted"
  * @return The received data
  */
-uint8_t spi_trx(spiCH_t spi_hw_ch, uint8_t tx_data);
+uint8_t spiTrx(spiCH_t spi_hw_ch, uint8_t tx_data);
 
 
 #ifdef __cplusplus
diff --git a/ked/csl/interfaces/spi_ch.h b/ked/csl/interfaces/spi_ch.h
deleted file mode 100644
index a541a43..0000000
--- a/ked/csl/interfaces/spi_ch.h
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-#ifndef _SPI_CH_H
-#define _SPI_CH_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "pin.h"
-#include "spi.h"
-#include <stdint.h>
-
-// https://stackoverflow.com/questions/17052443/c-function-inside-struct
-typedef uint8_t (*readReg_t) (uint8_t); 
-
-
-/*! \brief SPI cannel class
- * This class cpntains the pin and spi channel number 
- * select.
- * */
-typedef struct{
-	pinNo_t pin;	/*!< pin number */	
-	spiCH_t spi;	/*!< spi hardware channel number */
-}spi_ch_t;
-
-/**
- * \brief Set up SPI channel
- * Set up a SPI channel by passig a hardware SPI channel and a chipselect pin.
- * The chipselect pin will be set to high (chipselect is lowactive).
- * \param *ch pointer to SPI channel
- * \param spi_hw_ch SPI hardware channel
- * \param chipslectPin designated pin for chipslect
- */
-void spiCH_setupCH(spi_ch_t *ch, spiCH_t spi_hw_ch, pinNo_t chipselectPin);
-
-/**
- * \brief Read register
- * Read one byte from a one register with one byte address.
- * \param *spi_ch spi pointer to spi channel object
- * \param reg_address register address
- * \return register content
- */
-uint8_t spiCH_readReg(spi_ch_t *spi_ch,
-					  uint8_t reg_address);
-
-/**
- * \brief Read Block
- * Read a block of data starting at a given start address.
- * This function makes use of the auto register increment of the device to be read from. 
- * The address will be sent once and then data is read.
- * \param *spi_ch pointer to spi cannel object
- * \param start_address start address to the first register
- * \param *buffer pointer to the buffer in which the read content is written into
- * \param buf_len length of buffer
- */
-void spiCH_autoReadBlock(spi_ch_t *spi_ch,
-						 uint8_t start_address,
-						 uint8_t* buffer,
-						 uint8_t buf_len);
-
-/**
- * \brief Write register
- * Write one byte to one register with one byte address.
- * \param *spi_ch pointer to spi channel object
- * \param reg_address register address
- * \param data data byte to be written into register
- *
- */
-void spiCH_writeReg(spi_ch_t *spi_ch,
-					uint8_t reg_address,
-					uint8_t data);	
-/**
- * \brief  Write data  block
- * Write a block of data starting at a given start address.
- * This function makes use of the auto register increment of the device to be written to. The
- * address will be sent once an then data is written.
- * \param *spi_ch pointer to spi channel object
- * \param start_address start address of the first reister
- * \param *data pointer to data to be written
- * \param data_len length of data to be written
- */
-void spiCH_writeBlock(spi_ch_t *spi_ch,
-					  uint8_t start_address,
-					  const uint8_t *data,
-					  uint8_t data_len);
-#ifdef __cplusplus
-}
-#endif
-
-#endif //_SPI_CH_H
-
diff --git a/ked/csl/stm32f042/Src/imp_spi.c b/ked/csl/stm32f042/Src/imp_spi.c
index 1dfd064..5541741 100644
--- a/ked/csl/stm32f042/Src/imp_spi.c
+++ b/ked/csl/stm32f042/Src/imp_spi.c
@@ -4,9 +4,9 @@
 
 // https://controllerstech.com/spi-using-registers-in-stm32/
 
-void spi_init(spiCH_t spi_hw_ch)
+void spiInit(spiCH_t spi_hw_ch)
 {
-	spi_reset(spi_hw_ch);
+	spiReset(spi_hw_ch);
 
 	// TODO implement bittwiddeling etc. for generic SPI init
 	RCC->APB2ENR |= (1<<12);  // Enable SPI1 CLock	
@@ -36,7 +36,7 @@ void spi_init(spiCH_t spi_hw_ch)
 	SPI_BASE->CR2 = 0;
 }
 
-void spi_reset(spiCH_t spi_hw_ch)
+void spiReset(spiCH_t spi_hw_ch)
 {
 	if(spiBus_No[spi_hw_ch] == 1) {
 		RCC->APB1RSTR |= (1 << spiBus_Rst_bitPos[spi_hw_ch]);
@@ -48,22 +48,22 @@ void spi_reset(spiCH_t spi_hw_ch)
 	RCC->APB2RSTR &= ~(1 << spiBus_Rst_bitPos[spi_hw_ch]);
 }
 
-void spi_enable(spiCH_t spi_hw_ch)
+void spiEnable(spiCH_t spi_hw_ch)
 {
 	//TODO void spi_enable(spiCH_t spi_hw_ch);
 }
 
-void spi_setPolarity(spiCH_t spi_hw_ch, spi_clkPol_t clkPol)
+void spiSetPolarity(spiCH_t spi_hw_ch, spi_clkPol_t clkPol)
 {
 	//TODO void spi_setPolarity(spi_clkPol_t clkPol);
 }
 
-void spi_set_setFrameFormat(spiCH_t spi_hw_ch, spi_framef_t framef)
+void spiSet_setFrameFormat(spiCH_t spi_hw_ch, spi_framef_t framef)
 {
 	// TODO void spi_set_setFrameFormat(spi_framef_t framef);
 }
 
-uint8_t spi_trx(spiCH_t spi_hw_ch, uint8_t tx_data)
+uint8_t spiTrx(spiCH_t spi_hw_ch, uint8_t tx_data)
 {
 	uint8_t data;
 	// example
diff --git a/ked/drivers/spi.c b/ked/drivers/spi.c
index deb249f..3030aa6 100644
--- a/ked/drivers/spi.c
+++ b/ked/drivers/spi.c
@@ -1,26 +1,26 @@
-#include "spi_ch.h"
+#include "spi.h"
 
 // generic implementation of spi channel class
 
-void spiCH_setupCH(spi_ch_t *ch, spiCH_t spi_hw_ch, pinNo_t chipslectPin)
+void spiSetupCH(spi_ch_t *ch, spiCH_t spi_hw_ch, pinNo_t chipselectPin)
 {
 	ch->pin  = chipselectPin;
 	ch->spi = spi_hw_ch;
-	pinWrite(chipslectPin, 0);
+	pinWrite(chipselectPin, 0);
 }
 
-uint8_t spiCH_readReg(spi_ch_t *spi_ch,
+uint8_t spiReadReg(spi_ch_t *spi_ch,
 					  uint8_t reg_address) {
-	uitn8_t buf;
+	uint8_t buf;
 	
 	// select target device
 	pinWrite(spi_ch->pin,0);
 	
 	// send address of target register
-	spi_trx(spi_ch->spi, reg_address);
+	spiTrx(spi_ch->spi, reg_address);
 
 	// read from target register
-	buf = spi_trx(spi->spi,0x00);
+	buf = spiTrx(spi_ch->spi,0x00);
 
 	// release target device
 	pinWrite(spi_ch->pin,1);
@@ -28,7 +28,7 @@ uint8_t spiCH_readReg(spi_ch_t *spi_ch,
 	return buf;
 }
 
-void spiCH_autoReadBlock(spi_ch_t *spi_ch,
+void spiAutoReadBlock(spi_ch_t *spi_ch,
 						 uint8_t start_address,
 						 uint8_t* buffer,
 						 uint8_t buf_len) {
@@ -38,34 +38,34 @@ void spiCH_autoReadBlock(spi_ch_t *spi_ch,
 	pinWrite(spi_ch->pin,0);
 	
 	// send address of starting register
-	spi_trx(spi_ch->spi, reg_address);
+	spiTrx(spi_ch->spi, start_address);
 
 	// read block from device
 	for(;i < buf_len;i++) {
-		buffer[i] = spi_trx(spi_ch->spi, 0x00);
+		buffer[i] = spiTrx(spi_ch->spi, 0x00);
 	}
 
 	// release target device
 	pinWrite(spi_ch->pin,1);
 }
 
-void spiCH_writeReg(spi_ch_t *spi_ch,
+void spiWriteReg(spi_ch_t *spi_ch,
 					uint8_t reg_address,
 					uint8_t data) {
 	// select target device
 	pinWrite(spi_ch->pin,0);
 	
 	// send address of target register
-	spi_trx(spi_ch->spi, reg_address);
+	spiTrx(spi_ch->spi, reg_address);
 
 	// write to target register
-	spi_trx(spi->spi, data);
+	spiTrx(spi_ch->spi, data);
 
 	// release target device
 	pinWrite(spi_ch->pin,1);
 }
 
-void spiCH_writeBlock(spi_ch_t *spi_ch,
+void spiWriteBlock(spi_ch_t *spi_ch,
 					  uint8_t start_address,
 					  const uint8_t *data,
 					  uint8_t data_len) {
@@ -75,11 +75,11 @@ void spiCH_writeBlock(spi_ch_t *spi_ch,
 	pinWrite(spi_ch->pin,0);
 	
 	// send address of starting register
-	spi_trx(spi_ch->spi, reg_address);
+	spiTrx(spi_ch->spi, start_address);
 
 	// read block from device
-	for(;i < buf_len;i++) {
-		spi_trx(spi_ch->spi, data[i]);
+	for(;i < data_len;i++) {
+		spiTrx(spi_ch->spi, data[i]);
 	}
 
 	// release target device
diff --git a/main.c b/main.c
index c093b7e..205a637 100644
--- a/main.c
+++ b/main.c
@@ -5,7 +5,6 @@
 #include "ascii.h"
 #include "timer.h"
 #include "spi.h"
-#include "ked/csl/interfaces/spi_ch.h"
 
 
 int main(int argc, char *argv[])
@@ -62,9 +61,9 @@ int main(int argc, char *argv[])
 	pinSetAlternate(pinA6, 0);	// SPI1_MISO
 	pinSetAlternate(pinA7, 0);	// SPI1_MOSI
 
-	spi_init(SPI_CH_1);
+	spiInit(SPI_CH_1);
 
-	spiCH_setupCH(&spi_test_channel, SPI_CH_1, pinA4);
+	spiSetupCH(&spi_test_channel, SPI_CH_1, pinA4);
 
 	for(i = 0 ; i < 20 ; i++) {
 		delayMs(50); 
@@ -74,7 +73,7 @@ int main(int argc, char *argv[])
 
 	for(i = 10; i > 0; i--) {	
 
-		spiCH_writeReg(&spi_test_channel,0xAE,0xAE);	
+		spiWriteReg(&spi_test_channel,0xAE,0xAE);	
 		//spi_trx(SPI_CH_1, 0xAE);
 	}