the classes can compole now, more funtion to be finished