always add explicit return type on API, especially on implicits