use basecontroller where possible