avoids creating multiple copies of methods