implemented methods to constrain board bounds, but still buggy