functors + initial course structure