Protocol is here, this is getting messy now