parameter self is useless,instance method could be a static mehod