found implementation of optional decimal that I like, should take a
couple more days to complete.