implementing controller