some of Jakub's work + new controller