uncommented needed methods