add clean code book