reimplemented rest of package tc except OptionsController