controller implementation and preliminary prep