using i8 literals instead of cast