added better docmentation, error handling, getter methods and chip select to all the methods