Added a first version of the peripheral implementation