v0.2.4 - code reorganize for easier extend