Added more protocols and good practices to TODO