 					zeroCent = true
 				@[parsedOptions.plugin](input, parsedOptions.template, zeroCent) #todo: temp setup for zeroCent
 
+# Public methods
+Numbo::tools = utils
+Numbo::enUS = enUS
+Numbo::zhTW = zhTW
+Numbo::zhCN = zhCN
 
 numbo = new Numbo()
 

import zhTW from './zh-tw.coffee'
import zhCN from './zh-cn.coffee'

class Numbo

	tools =
		parse99: parse99
		trimWhitespace: trimWhitespace
		parseCents: parseCents
		speakByDigit: speakByDigit
		check: check
		normalize: normalize
		adjustDecimal: adjustDecimal
		splitNum: splitNum
		splitInt: splitInt
	tools:
		trimWhitespace: tools.trimWhitespace
		parse99: tools.parse99
		parseCent: tools.parseCents #todo to be depreciated
		parseCents: tools.parseCents #todo to be depreciated
		speakByDigit: tools.speakByDigit
		check: tools.check
		validate: tools.check
		normalize: tools.normalize
		normalise: tools.normalize
		adjustDecimal: tools.adjustDecimal
		splitNum: tools.splitNum
		splitInt: tools.splitInt

	convert_enUS = enUS
	convert_zhTW = zhTW
	convert_zhCN = zhCN
	enUS: convert_enUS
	zhTW: convert_zhTW
	zhCN: convert_zhCN

	langs = ['enUS', 'zhTW', 'zhCN']


		# `input` can be string or number
		# `options` can be language ('zhTW') and style ('number', 'amount' or 'cheque')
		if options.length is 0 # not provide any option
			@enUS(input)
		else
			zeroCent = false #todo: temp setup
			parsedOptions = parseOptions(langs, options)
