number input functionality readded, some of the old code reused, but has been cleaned up dramatically