added board definition and basic operations