added rank and suit enum, cleaned up constructors