fixing constexpr issues and making unary operators non-members