add constexpr to constructors
fix istream operator<<
change typedefs to using