optimization

type declare functions