extracted methods