alternative approach to controllers