tryout phase -> in the end, will probably use std::tuple for functions