refactor and expand grandfather methods