much nicer control design