dispatch pattern not suitable
defining functions