use interface{} for method overloading, API work