implement instance methods