use native methods when possible.