inheritance to avoid duplication