should also handle double
some work on sad