This part could need some denormalization, since the API is protected anyway