use native methods when possible