based on weka and make some modification for special usage.