#12 improve data types
#12 improve data types