board initialize (very slow and buggy)