both methods
both functions