more abstraction + added create new game interface