all classes + functions finished
before changing supports data type