Converted to private implementation