made some abt stuff protected instead of private