reorganize public methods
refactor to cleaner style
remove comment