reimplementing accept