Changed BoardLocation to abstract class