updated with cleaned up Hex/Bin conversion methods and Swift-friendly properties