basic controller outline