implemented coirse chooser