Needs more debugging, needs more fixes. Features in progress: auto select