updated middleware & read me