use unsafe code to avoid horrible reversing