redesign, working on smart ints