number implementation