implementing decimal