finished important methods, just need standardize and main