Common internal functionality wrapped to private functions