implemented main method check that shit