Now just to implement the necessary constructors and constants