reduce memory usage by using float