board constrain to bounds now works, refactor later